home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 526-550 / disk_540 / parm / parm_src.lzh / Menus.c < prev    next >
C/C++ Source or Header  |  1991-04-04  |  2KB  |  130 lines

  1. /*
  2.  *    Menus.c - Copyright © 1990 by S.R. & P.C.
  3.  *
  4.  *    Created:    16 Jun 1990
  5.  *    Modified:    04 Apr 1991  23:20:35
  6.  *
  7.  *    Make>> make
  8.  */
  9.  
  10.  
  11. static struct IntuiText SubText2 = {
  12.     3,2,JAM1,
  13.     22,1,
  14.     NULL,
  15.     (UBYTE *)"Shell",
  16.     NULL
  17. };
  18.  
  19. static struct MenuItem SubItem2 = {
  20.     NULL,
  21.     104,10,
  22.     72,10,
  23.     CHECKIT+ITEMTEXT+ITEMENABLED+HIGHCOMP,
  24.     1,
  25.     NULL,
  26.     NULL,
  27.     NULL,
  28.     NULL,
  29.     MENUNULL
  30. };
  31.  
  32. static struct IntuiText SubText1 = {
  33.     3,2,JAM1,
  34.     22,1,
  35.     NULL,
  36.     (UBYTE *)"Simple",
  37.     NULL
  38. };
  39.  
  40. struct MenuItem SubItem1 = {
  41.     NULL,
  42.     104,0,
  43.     72,10,
  44.     CHECKIT+ITEMTEXT+ITEMENABLED+HIGHCOMP+CHECKED,    /* Item flags */
  45.     2,
  46.     NULL,
  47.     NULL,
  48.     NULL,
  49.     NULL,
  50.     MENUNULL
  51. };
  52.  
  53.  
  54. struct Menu Menu1 = {
  55.     NULL,
  56.     0,0,
  57.     44,0,
  58.     MENUENABLED,
  59.     "ParM",
  60.     NULL
  61. };
  62.  
  63. static struct IntuiText Line = {
  64.     2, 0, JAM1,
  65.     0, 9,
  66.     NULL,
  67.     (UBYTE *)"-------------",
  68.     NULL
  69. };
  70.  
  71. static struct {
  72.     char *MenuName;
  73.     char Command;
  74.     char line;
  75. } MenuTab[] = {
  76.     {"Open",     'O', 0},
  77.     {"UpDate",     'U', 0},
  78.     {"Std Cfg",      0 , 1},
  79.     {"Cmd Mode",  0 , 0},
  80.     {"Command",     'C', 1},
  81.     {"Change Dir",0 , 1},
  82.     {"Quit",      0 , 0}
  83. };
  84.  
  85. #define NUMBER_OF_ITEM 7
  86.  
  87. void CreateParMenu(short Color)
  88. {
  89.     struct MenuItem *mi, **miptr;
  90.     struct IntuiText *it;
  91.     struct Menu *ParM;
  92.     short top, i;
  93.  
  94.     ParM = &Menu1;
  95.     miptr = &ParM->FirstItem;
  96.     Line.FrontPen = Color;
  97.     for( top=0, i=0 ; i<NUMBER_OF_ITEM ; i++ ) {
  98.         mi = ArpAlloc(sizeof(struct MenuItem));
  99.         it = ArpAlloc(sizeof(struct IntuiText));
  100.         mi->ItemFill = (APTR)it;
  101.         mi->Width = 104;
  102.         mi->Height = 10;
  103.         mi->TopEdge = top;
  104.         mi->Flags = ITEMTEXT+ITEMENABLED+HIGHCOMP;
  105.         if (MenuTab[i].Command) {
  106.             mi->Command = MenuTab[i].Command;
  107.             mi->Flags |= COMMSEQ;
  108.         }
  109.         top += 10;
  110.         it->IText = (UBYTE *)MenuTab[i].MenuName;
  111.         it->FrontPen = Color;
  112.         it->LeftEdge = it->TopEdge = 1;
  113.         if (MenuTab[i].line) {
  114.             it->NextText = &Line;
  115.             top += 5;
  116.         }
  117.         if (i == 3) {
  118.             SubItem1.ItemFill = (APTR)&SubText1;
  119.             SubText1.FrontPen = Color;
  120.             SubItem1.NextItem = &SubItem2;
  121.             SubItem2.ItemFill = (APTR)&SubText2;
  122.             SubText2.FrontPen = Color;
  123.             mi->SubItem = &SubItem1;
  124.         }
  125.         *miptr = mi;
  126.         miptr = &mi->NextItem;
  127.     }
  128. }
  129.  
  130.